{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Pandas的stack和pivot实现数据透视\n",
    "\n",
    "\n",
    "<img src=\"./other_files/reshaping_example.png\" style=\"margin-left:0px; width:600px\" />\n",
    "\n",
    "1. 经过统计得到多维度指标数据\n",
    "2. 使用unstack实现数据二维透视\n",
    "3. 使用pivot简化透视\n",
    "4. stack、unstack、pivot的语法"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "###  1. 经过统计得到多维度指标数据\n",
    "\n",
    "非常常见的统计场景，指定多个维度，计算聚合后的指标  \n",
    "\n",
    "实例：统计得到“电影评分数据集”，每个月份的每个分数被评分多少次：（月份、分数1~5、次数）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = pd.read_csv(\n",
    "    \"./datas/movielens-1m/ratings.dat\",\n",
    "    header=None,\n",
    "    names=\"UserID::MovieID::Rating::Timestamp\".split(\"::\"),\n",
    "    sep=\"::\",\n",
    "    engine=\"python\"\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>UserID</th>\n",
       "      <th>MovieID</th>\n",
       "      <th>Rating</th>\n",
       "      <th>Timestamp</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>1193</td>\n",
       "      <td>5</td>\n",
       "      <td>978300760</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>661</td>\n",
       "      <td>3</td>\n",
       "      <td>978302109</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>914</td>\n",
       "      <td>3</td>\n",
       "      <td>978301968</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>3408</td>\n",
       "      <td>4</td>\n",
       "      <td>978300275</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1</td>\n",
       "      <td>2355</td>\n",
       "      <td>5</td>\n",
       "      <td>978824291</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   UserID  MovieID  Rating  Timestamp\n",
       "0       1     1193       5  978300760\n",
       "1       1      661       3  978302109\n",
       "2       1      914       3  978301968\n",
       "3       1     3408       4  978300275\n",
       "4       1     2355       5  978824291"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 格式化时间戳\n",
    "df[\"pdate\"] = pd.to_datetime(df[\"Timestamp\"], unit='s')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>UserID</th>\n",
       "      <th>MovieID</th>\n",
       "      <th>Rating</th>\n",
       "      <th>Timestamp</th>\n",
       "      <th>pdate</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>1193</td>\n",
       "      <td>5</td>\n",
       "      <td>978300760</td>\n",
       "      <td>2000-12-31 22:12:40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>661</td>\n",
       "      <td>3</td>\n",
       "      <td>978302109</td>\n",
       "      <td>2000-12-31 22:35:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>914</td>\n",
       "      <td>3</td>\n",
       "      <td>978301968</td>\n",
       "      <td>2000-12-31 22:32:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>3408</td>\n",
       "      <td>4</td>\n",
       "      <td>978300275</td>\n",
       "      <td>2000-12-31 22:04:35</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1</td>\n",
       "      <td>2355</td>\n",
       "      <td>5</td>\n",
       "      <td>978824291</td>\n",
       "      <td>2001-01-06 23:38:11</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   UserID  MovieID  Rating  Timestamp               pdate\n",
       "0       1     1193       5  978300760 2000-12-31 22:12:40\n",
       "1       1      661       3  978302109 2000-12-31 22:35:09\n",
       "2       1      914       3  978301968 2000-12-31 22:32:48\n",
       "3       1     3408       4  978300275 2000-12-31 22:04:35\n",
       "4       1     2355       5  978824291 2001-01-06 23:38:11"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "UserID                int64\n",
       "MovieID               int64\n",
       "Rating                int64\n",
       "Timestamp             int64\n",
       "pdate        datetime64[ns]\n",
       "dtype: object"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.dtypes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 实现数据统计\n",
    "df_group = df.groupby([df[\"pdate\"].dt.month, \"Rating\"])[\"UserID\"].agg(pv=np.size)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>pv</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>pdate</th>\n",
       "      <th>Rating</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"5\" valign=\"top\">1</th>\n",
       "      <th>1</th>\n",
       "      <td>1127</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2608</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>6442</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>8400</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>4495</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"5\" valign=\"top\">2</th>\n",
       "      <th>1</th>\n",
       "      <td>629</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1464</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3297</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4403</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>2335</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"5\" valign=\"top\">3</th>\n",
       "      <th>1</th>\n",
       "      <td>466</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1077</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2523</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3032</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>1439</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"5\" valign=\"top\">4</th>\n",
       "      <th>1</th>\n",
       "      <td>1048</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2247</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5501</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>6748</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>3863</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                pv\n",
       "pdate Rating      \n",
       "1     1       1127\n",
       "      2       2608\n",
       "      3       6442\n",
       "      4       8400\n",
       "      5       4495\n",
       "2     1        629\n",
       "      2       1464\n",
       "      3       3297\n",
       "      4       4403\n",
       "      5       2335\n",
       "3     1        466\n",
       "      2       1077\n",
       "      3       2523\n",
       "      4       3032\n",
       "      5       1439\n",
       "4     1       1048\n",
       "      2       2247\n",
       "      3       5501\n",
       "      4       6748\n",
       "      5       3863"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_group.head(20)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "对这样格式的数据，我想查看按月份，不同评分的次数趋势，是没法实现的\n",
    "\n",
    "需要将数据变换成每个评分是一列才可以实现"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2. 使用unstack实现数据二维透视\n",
    "\n",
    "目的：想要画图对比按照月份的不同评分的数量趋势"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr:last-of-type th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th colspan=\"5\" halign=\"left\">pv</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Rating</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>pdate</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1127</td>\n",
       "      <td>2608</td>\n",
       "      <td>6442</td>\n",
       "      <td>8400</td>\n",
       "      <td>4495</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>629</td>\n",
       "      <td>1464</td>\n",
       "      <td>3297</td>\n",
       "      <td>4403</td>\n",
       "      <td>2335</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>466</td>\n",
       "      <td>1077</td>\n",
       "      <td>2523</td>\n",
       "      <td>3032</td>\n",
       "      <td>1439</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1048</td>\n",
       "      <td>2247</td>\n",
       "      <td>5501</td>\n",
       "      <td>6748</td>\n",
       "      <td>3863</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>4557</td>\n",
       "      <td>7631</td>\n",
       "      <td>18481</td>\n",
       "      <td>25769</td>\n",
       "      <td>17840</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>3196</td>\n",
       "      <td>6500</td>\n",
       "      <td>15211</td>\n",
       "      <td>21838</td>\n",
       "      <td>14365</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>4891</td>\n",
       "      <td>9566</td>\n",
       "      <td>25421</td>\n",
       "      <td>34957</td>\n",
       "      <td>22169</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>10873</td>\n",
       "      <td>20597</td>\n",
       "      <td>50509</td>\n",
       "      <td>64198</td>\n",
       "      <td>42497</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>3107</td>\n",
       "      <td>5873</td>\n",
       "      <td>14702</td>\n",
       "      <td>19927</td>\n",
       "      <td>13182</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>2121</td>\n",
       "      <td>4785</td>\n",
       "      <td>12175</td>\n",
       "      <td>16095</td>\n",
       "      <td>10324</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>17701</td>\n",
       "      <td>32202</td>\n",
       "      <td>76069</td>\n",
       "      <td>102448</td>\n",
       "      <td>67041</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>6458</td>\n",
       "      <td>13007</td>\n",
       "      <td>30866</td>\n",
       "      <td>41156</td>\n",
       "      <td>26760</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           pv                             \n",
       "Rating      1      2      3       4      5\n",
       "pdate                                     \n",
       "1        1127   2608   6442    8400   4495\n",
       "2         629   1464   3297    4403   2335\n",
       "3         466   1077   2523    3032   1439\n",
       "4        1048   2247   5501    6748   3863\n",
       "5        4557   7631  18481   25769  17840\n",
       "6        3196   6500  15211   21838  14365\n",
       "7        4891   9566  25421   34957  22169\n",
       "8       10873  20597  50509   64198  42497\n",
       "9        3107   5873  14702   19927  13182\n",
       "10       2121   4785  12175   16095  10324\n",
       "11      17701  32202  76069  102448  67041\n",
       "12       6458  13007  30866   41156  26760"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_stack = df_group.unstack()\n",
    "df_stack"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x11a28f340>"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df_stack.plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>pv</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>pdate</th>\n",
       "      <th>Rating</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"5\" valign=\"top\">1</th>\n",
       "      <th>1</th>\n",
       "      <td>1127</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2608</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>6442</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>8400</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>4495</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"5\" valign=\"top\">2</th>\n",
       "      <th>1</th>\n",
       "      <td>629</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1464</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3297</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4403</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>2335</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"5\" valign=\"top\">3</th>\n",
       "      <th>1</th>\n",
       "      <td>466</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1077</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2523</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3032</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>1439</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"5\" valign=\"top\">4</th>\n",
       "      <th>1</th>\n",
       "      <td>1048</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2247</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5501</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>6748</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>3863</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                pv\n",
       "pdate Rating      \n",
       "1     1       1127\n",
       "      2       2608\n",
       "      3       6442\n",
       "      4       8400\n",
       "      5       4495\n",
       "2     1        629\n",
       "      2       1464\n",
       "      3       3297\n",
       "      4       4403\n",
       "      5       2335\n",
       "3     1        466\n",
       "      2       1077\n",
       "      3       2523\n",
       "      4       3032\n",
       "      5       1439\n",
       "4     1       1048\n",
       "      2       2247\n",
       "      3       5501\n",
       "      4       6748\n",
       "      5       3863"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# unstack和stack是互逆操作\n",
    "df_stack.stack().head(20)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3. 使用pivot简化透视"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>pv</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>pdate</th>\n",
       "      <th>Rating</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"5\" valign=\"top\">1</th>\n",
       "      <th>1</th>\n",
       "      <td>1127</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2608</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>6442</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>8400</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>4495</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"5\" valign=\"top\">2</th>\n",
       "      <th>1</th>\n",
       "      <td>629</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1464</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3297</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4403</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>2335</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"5\" valign=\"top\">3</th>\n",
       "      <th>1</th>\n",
       "      <td>466</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1077</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2523</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3032</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>1439</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"5\" valign=\"top\">4</th>\n",
       "      <th>1</th>\n",
       "      <td>1048</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2247</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5501</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>6748</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>3863</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                pv\n",
       "pdate Rating      \n",
       "1     1       1127\n",
       "      2       2608\n",
       "      3       6442\n",
       "      4       8400\n",
       "      5       4495\n",
       "2     1        629\n",
       "      2       1464\n",
       "      3       3297\n",
       "      4       4403\n",
       "      5       2335\n",
       "3     1        466\n",
       "      2       1077\n",
       "      3       2523\n",
       "      4       3032\n",
       "      5       1439\n",
       "4     1       1048\n",
       "      2       2247\n",
       "      3       5501\n",
       "      4       6748\n",
       "      5       3863"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_group.head(20)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>pdate</th>\n",
       "      <th>Rating</th>\n",
       "      <th>pv</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1127</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>2608</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>6442</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>8400</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>4495</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   pdate  Rating    pv\n",
       "0      1       1  1127\n",
       "1      1       2  2608\n",
       "2      1       3  6442\n",
       "3      1       4  8400\n",
       "4      1       5  4495"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_reset = df_group.reset_index()\n",
    "df_reset.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_pivot = df_reset.pivot(\"pdate\", \"Rating\", \"pv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>Rating</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>pdate</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1127</td>\n",
       "      <td>2608</td>\n",
       "      <td>6442</td>\n",
       "      <td>8400</td>\n",
       "      <td>4495</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>629</td>\n",
       "      <td>1464</td>\n",
       "      <td>3297</td>\n",
       "      <td>4403</td>\n",
       "      <td>2335</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>466</td>\n",
       "      <td>1077</td>\n",
       "      <td>2523</td>\n",
       "      <td>3032</td>\n",
       "      <td>1439</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1048</td>\n",
       "      <td>2247</td>\n",
       "      <td>5501</td>\n",
       "      <td>6748</td>\n",
       "      <td>3863</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>4557</td>\n",
       "      <td>7631</td>\n",
       "      <td>18481</td>\n",
       "      <td>25769</td>\n",
       "      <td>17840</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Rating     1     2      3      4      5\n",
       "pdate                                  \n",
       "1       1127  2608   6442   8400   4495\n",
       "2        629  1464   3297   4403   2335\n",
       "3        466  1077   2523   3032   1439\n",
       "4       1048  2247   5501   6748   3863\n",
       "5       4557  7631  18481  25769  17840"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_pivot.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x11ab4e910>"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df_pivot.plot()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "***pivot方法相当于对df使用set_index创建分层索引，然后调用unstack***"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4. stack、unstack、pivot的语法\n",
    "\n",
    "#### stack：DataFrame.stack(level=-1, dropna=True)，将column变成index，类似把横放的书籍变成竖放\n",
    "\n",
    "level=-1代表多层索引的最内层，可以通过==0、1、2指定多层索引的对应层\n",
    "\n",
    "<img src=\"./other_files/reshaping_stack.png\" style=\"margin-left:0px; width:600px\" />\n",
    "\n",
    "#### unstack：DataFrame.unstack(level=-1, fill_value=None)，将index变成column，类似把竖放的书籍变成横放\n",
    "\n",
    "<img src=\"./other_files/reshaping_unstack.png\" style=\"margin-left:0px; width:600px\" />\n",
    "\n",
    "#### pivot：DataFrame.pivot(index=None, columns=None, values=None)，指定index、columns、values实现二维透视\n",
    "\n",
    "<img src=\"./other_files/reshaping_pivot.png\" style=\"margin-left:0px; width:600px\" />"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.2"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
